package UI.funcionarios;

import UI.PanelFormularioGenerico;
import gestorBD.Controlador;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import uiMain.OpcionDeMenu;
import static uiMain.bienRaizOk.ventana;

public class PanelOpcionRegistrarUnidad extends OpcionDeMenu {

    PanelFormularioGenerico panelFormulario;
    JPanel panelDeBotones;

    String[] labelsUnidad = {"Código", "Nombre de la unidad", "Dirección", "Estrato"};
    String[] valoresUnidad = {Controlador.obtenerSiguienteCodigoDeUnidad(), "", "", ""};
    int[] tiposDeCampoUnidad = {5, 0, 0, 4};
    
    public PanelOpcionRegistrarUnidad() {

    }

    @Override
    public void ejecutar() {
        this.setLayout(new BorderLayout());

        this.panelFormulario = new PanelFormularioGenerico();
        this.panelDeBotones = new JPanel(new FlowLayout());

        JButton botonRegistrar = new JButton("Registrar unidad");
        this.panelDeBotones.add(botonRegistrar);

        JButton botonVolver = new JButton("Volver");
        this.panelDeBotones.add(botonVolver);

        
        this.panelFormulario = new PanelFormularioGenerico("Criterio", "Valor", labelsUnidad, valoresUnidad, tiposDeCampoUnidad);
        this.add(this.panelFormulario, BorderLayout.CENTER);
        this.add(this.panelDeBotones, BorderLayout.SOUTH);

        //Se añaden las funcionalidades
        botonRegistrar.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                boolean sePudoRegistrar;

                for (int i = 0; i < labelsUnidad.length; i++) {
                    if (!labelsUnidad[i].contains("opcional") && valoresUnidad[i].equals("")) {
                        String textoPopUp = "El campo " + labelsUnidad[i].toLowerCase() + " es obligatorio";
                        JOptionPane.showMessageDialog(null, textoPopUp, "Error", JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                }
                String codigo = valoresUnidad[0];
                String nombre = valoresUnidad[1];
                String direccion = valoresUnidad[2];
                int estrato = Integer.parseInt(valoresUnidad[3]);

                String textoPopUp = Controlador.registrarNuevaUnidad(codigo, nombre, direccion, estrato);
                JOptionPane.showMessageDialog(null, textoPopUp, "Información", JOptionPane.INFORMATION_MESSAGE);
                ventana.mostrarPanelOpcionesDeFuncionario();
            }
        });

        botonVolver.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                ventana.mostrarPanelOpcionesDeFuncionario();
            }

        });

        ventana.mostrarPanel(this);
    }

    @Override
    public String toString() {
        return "Registrar una unidad";
    }

}
